import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import checker from 'vite-plugin-checker';
import path from 'node:path';

// https://vite.dev/config/
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd(), '');
  const apiPrefix = env.VITE_API_PREFIX;
  const targetUrl = env.VITE_API_URL;
  return {
    server: {
      proxy: {
        /**
         * 虽然后端是微服务项目，有多个地址前缀，前端配一个公共的api前缀，
         * 传给后端时，api去除掉即可，在这里是为了做公共替换
         */
        // '/api': {
        //   target: 'http://localhost:8080',
        //   changeOrigin: true,
        //   rewrite: path => path.replace(/^\/api/, ''),
        // },
        [apiPrefix]: {
          target: targetUrl,
          changeOrigin: true,
          rewrite: (path): any => path.replace(new RegExp(`^\\${apiPrefix}`), ''),
        },
      },
    },
    resolve: {
      alias: {
        '@': path.join(__dirname, './src'),
      },
    },
    plugins: [
      vue(),
      checker({
        typescript: true, // 启用 TypeScript 检查
        eslint: {
          lintCommand: 'eslint "./src/**/*.{ts,tsx,vue}"', // 可选：同时启用 ESLint
        },
        overlay: true, // 在浏览器中显示错误覆盖层
      }),
    ],
  };
});
